其他
帮帮商家版黄页微聊代运营中的商机槽位识别实践
导读
58同城是国内最大的生活服务信息服务平台,平台连接着数千万C端用户和数百万B端商家,基于IM微聊和对话机器人能力构建的帮帮智能客服商家版,支持QABot单轮问答和TaskBot多轮引导能力,通过商机引导收集用户商机。将帮帮商家版应用在黄页微聊代运营场景下,打造黄页商家智能聊天助手并不断优化,机器人获取商机转化率达到了人工客服水平的85%。
背景
商机与槽位
为了方便识别,这四种商机会被分拆成不同的槽位,具体如下:
电话商机->mobile等3个槽位
微信商机->wechat、QQ两个槽位
地址商机->city、subway等16个槽位
时间商机->hour、someyear等30个槽位
识别难点
尽管业界目前对实体识别这类序列标注任务的研究已经相当充分,然而结合具体的业务场景,进行商机槽位识别仍然面临着各种各样的的问题。在帮帮商家版黄页代运营项目的商机槽位识别中,我们遇到的一些问题及解决方案如下:
识别难点
商机间断用户对商机的表述不连续,尤其是时间、地点商机,举例:”我想租北京的房子,将台地铁站附近的” 解决方案:识别粒度细化,拆分商机到实体槽位地址商机->city、subway等16个实体槽位; 最终效果:city:北京+subway:将台地铁站=地址:北京将台地铁站。 需要引入商机拼接逻辑 微信本身没有实体范式,品牌型号如A4L2019 、vivox5,符合命名规则的任意串易造成误召回,在二手回收业务线尤其明显,举例:kefu:“亲,您方便留下您的微信吗,我们马上联系您哦~”,user:“U*****H” 解决方案:引入知识库黑名单后过滤处理;模型纳入上下文学习品牌类出现环境;
微信识别依赖上下文环境信息,context轮数不足漏召回,轮数过多易导致误召回,举例:user1:“你好,你加我微信聊吧~”,user2:“我想修个手机”,user3:“进水坏了,是lzx********1” 解决方案:人工统计分析纳入context轮数与准召、转化率的关系;确定引入最近5轮上文历史
整体架构
商机槽位识别模块整体采用正则+模型融合识别的方式实现,结合了规则与模型的优点;在模块迭代的过程中,跟随业务需求,从开始只支持电话、地址、时间三种商机类型,扩展到引入上下文信息,支持微信商机识别;远期计划新增支持约40种商机类型的识别,涉及商家版黄页业务线的各个子类商机槽位信息。
正则优点:初期可快速实现、模式准确率高
正则缺点:规则死板、泛化性不足
模型优点:泛化效果好、学习模式
模型缺点:需要较多训练数据、badcase问题
支持电话、微信、QQ正则 模型支持电话、地址、时间识别 结合模型和正则结果获得最终识别结果 支持引入上下文信息,来辅助识别
模型结构
实体槽位识别是一种常见的序列标注任务,在算法选型阶段对比了序列标注领域经典的BILSTM+CRF与IDCNN+CRF的效果,同时尝试了引入时下的预训练语言模型BERT,在权衡了识别效果与推理耗时之后,最终模型采用IDCNN+CRF结构,识别共计49个实体槽位;标签的格式采用BIO标准,其中B表示实体开始位置(Begin),I表示在实体内(Inside),O表示在实体外(Outside)。
模型探索
获取表示:如上图所示,模型首先采用双向GRU编码历史上文信息,通过获取隐层状态可以得到历史上文query的表示向量m,该向量可以代表历史query的信息;同样地通过另一个双向GRU,获取当前轮用户query的表示向量c;而后分别拼接当前向量c到历史向量m上,并经过一层前馈神经网络得到新的交互向量g;此后,将g向量按照query时间顺序,通过一个双向GRU便获得了上下文整体与当前query的交互向量ht。 抽取槽位:上述过程中获得的上下文向量ht,以参数初始化的方式引入先前介绍的BILSTM+CRF结构中(前述BILSTM结构图中的ht),输出槽位标签。
优点:可支持较多轮数表征、上文信息与当前轮query有信息交互。 缺点:编码获取表征需要额外耗时、需要大量的有标注训练数据 。
总结与展望
未来展望:
目前只提供上述四种商机识别,B端商家获取信息较少,对识别商机的使用率不足,为进一步服务C端用户细化需求,促进B端商家对商机的使用,提高商机使用率,计划新增40种商机类型的识别,包括物品种类、数量、价格、酒水品类、面积大小等商机类型。 进一步优化实验上下文相关的槽位识别模型,积累更多数据,同时尝试各类数据增强方法(如EDA等),融合上下文信息,提升模型在微信等上下文相关商机的识别效果。 对BERT等预训练模型的潜力挖掘不够,后续合理设计BERT上层结构,同时精细化调整超参数。
参考文献:
[1] Lample G , Ballesteros M , Subramanian S , et al. Neural Architectures for Named Entity Recognition[J]. 2016.
部门详细介绍可点击:ailab.58.com
福利环节
为了鼓励优质内容传播,【58技术】公众号近期会持续推出不定期活动奖励。
评论区互动留言,即可参与此次活动
留言转发集赞,点赞量前三名(点赞数需大于10)可获得定制版新年代码台历一本
活动时间:截至2021年1月31日